Computers have become pervasive in everyday life for many people. Computers are commonplace in the office and at home. Some people have hand-held computer devices to carry names and addresses with them, which connect to their notebook computer which they take to meetings and use when traveling, which also connect to their desktop unit for office or home use. The larger and more powerful computers usually are associated with physically larger units which are difficult for individuals to carry with them. This has resulted in several sizes of computers each having their own special purpose.
Users of computers become comfortable with applications and desire those applications to be portable across all of the machines which they use. A user of an address book on a small hand held device would also like to access that same address book on their office computer. They would rather not be required to learn a completely different address book. This is not so much a problem when the application is designed for the smallest computer, but it does become a problem when the application is designed for one of the larger, more robust units and the user wishes to execute the application on the smaller unit.
The ability to execute applications not specifically designed for a plurality of systems has exploded with the rapid acceptance of Java.RTM..sup.1 in the computing industry. Using Java, a computer user can download applications written in Java to their machine for execution. The user can request the execution of the application on their desktop system having extensive functionality as well as requesting the execution of the same application on a network computer having minimal functionality. This causes problems for robust applications.
 FNT Java is a registered trademark of Sun Microsystems, Inc.
Several application designers have implemented license management applications wherein an application queries the server to ensure that the user is allowed to access the application which they desire to download for execution. In the design of these applications, the user's application data is typically stored on the server so that the user can access the application and data from any computer which they chose to logon to. The design of most of these products is vertical in nature, the system is designed for a specific subset of client devices rather than for all possible clients. This is partially due to the complexity and differences in capabilities across a broad range of devices. Even though most of the popular target devices have Java enabled HTML (hypertext mark-up language) browsers, the difference in function, bandwidth to the device and capability with these devices can vary widely therefore most solutions are limited to a subset of devices.
A need exists for a means of mitigating the functional differences between the different levels of computers with little or no impact to the end user. This would allow applications to be utilized on a wider range of devices. This is easier to understand through example. Take a 3270 emulator, for example. There could be three versions of an emulator named PC13270 available, a full function and fully enhanced graphical user interface version, a medium function and medium user interface version and a small function version. Each one is the same application to the user and has the same name to the user. The Applet Launcher link to the PC/3270 references the specific one based on the capabilities of the device which is acquiring access. A small wireless unit might only be capable of executing the small version. From the user's perspective, it is the same application, perhaps with less fringe function, but the user can count on the core function, key mapping and other application attributes. This enables a series of applications that look the same in function and are named the same to execute across multiple platforms based on the specific capabilities of the platforms.